package com.gz.moreaseManager.modules.service.impl;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.gz.moreaseManager.core.base.BaseCommonUtils;
import com.gz.moreaseManager.modules.entity.ProductImg;
import com.gz.moreaseManager.modules.mapper.ProductImgMapper;
import com.gz.moreaseManager.modules.service.IProductImgService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.gz.moreaseManager.utils.UtilTool;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 * 产品规格图片信息 服务实现类
 * </p>
 *
 * @author wike
 * @since 2019-02-27
 */
@Service
public class ProductImgServiceImpl extends ServiceImpl<ProductImgMapper, ProductImg> implements IProductImgService {

    @Resource
    private ProductImgMapper productImgMapper;

    /**
     * 更新规格图片信息
     * @param imgList
     * @param productId
     */
    @Transactional
    @Override
    public void updateImgInfo(List<ProductImg> imgList,Integer productId) {
        if(UtilTool.isNotBlank( imgList ) && imgList.size()>0 && UtilTool.isNotBlank( productId )){
            MultipartFile file =null;
            ProductImg productImg =null;
            //imgList 数组大小跟imgFiles一致
            if( imgList.size() == imgList.size()){
                for(int i=0;i<imgList.size();i++){
                    productImg = imgList.get(i);
                    if( UtilTool.isNotBlank( productImg.getImgFile()) ){
                        String imgUrl = BaseCommonUtils.base64ToFile(productImg.getImgFile());//获取上传后返回的图片
                        productImg.setImgUrl(imgUrl);//重新存储图片路径
                    }
                    productImg.setProductId( productId );
                    if( UtilTool.isNotBlank(productImg.getId() ))//修改
                        productImgMapper.updateById( productImg);
                    if( UtilTool.isBlank(productImg.getId() )){//新增
                        productImgMapper.insert( productImg);
                    }
                }
            }
        }

    }

    /**
     * 根据产品ID删除图片信息
     * @param productId
     */
    @Override
    public void deleteImgByProductId(Integer productId) {
        if( UtilTool.isNotBlank( productId )){
            Wrapper wrapper = new EntityWrapper();
            wrapper.eq("product_id",productId);
            productImgMapper.delete( wrapper );
        }
    }

    /**
     * 根据产品ID获取图片列表信息
     * @param productId
     * @return
     */
    @Override
    public List<ProductImg> findImgListByProductId(Integer productId) {
        if( UtilTool.isNotBlank( productId )){
            Wrapper wrapper = new EntityWrapper();
            wrapper.eq("product_id",productId);
            List<ProductImg> list = productImgMapper.selectList(wrapper);
            if( UtilTool.isNotBlank( list ))
                return list;
        }
        return null;
    }
}
